/**
 * 接口Interfaces
 */

export {}

// 接口是一种约定，用来约束一个对象的结构，对象实现接口时必须和接口结构一致

interface post {
  title: string
  content: string
  subtitle?: string // 可选成员
  readonly summary: string // 只读成员
}

function printPost (post: post) {
  console.log(post.title)
  console.log(post.content)
}

const hello: post = {
  title: 'Typescript',
  content: 'Interfaces',
  summary: 'ts'
}
// hello.summary = 'js' 只读成员初始化后不允许修改

printPost(hello)

// 动态成员--------------------------------------------------
interface Cache {
  [prop: string]: string
}

const cache: Cache = {
  'name': 'mmm'
}

cache.foo = 'foo'
cache.bar = 'bar'



